﻿/*
 * Разработчик: Коледа Андрей
 * Дата: 20.02.2011
 * Время: 16:29
 * Email: koleda.andrey@gmail.com
 */

using System;
using System.IO;
using System.Reflection;
using System.Xml;
using FastTravel.DB;
using FastTravel.DB.Enums;
using FastTravel.Utilites;

namespace FastTravel.Deploy
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("Создаем контейнер...");
			var container = new FastTravelModelContainer();
			
			// Создаем администратора
			Console.WriteLine("Создаем администратора");
			
			User user = new User
			            	{
			            		AddedDate = DateTime.Now,
			            		FirstName = "Иван",
			            		LastName = "Иванов",
			            		MiddleName = "Ивановоич",
			            		IsArchive = false,
			            		IsBlocked = false,
			            		Login = "admin",
			            		UserRole = UserRole.Administrator,
			            		PasswordSalt = PasswordHelper.GeneratePasswordSalt()
			            	};
			user.PasswordHash = PasswordHelper.HashPassword("admin", user.PasswordSalt);

			// Заполняем странами
			Console.WriteLine("Создаем страны...");

			XmlDocument doc = new XmlDocument();

			doc.Load("H:\\Project2010\\FastTravel\\FastTravel.Deploy\\Countries.xml");

			foreach (XmlNode node in doc.SelectNodes("//country"))
			{
				Country country = new Country
				                  	{
				                  		Name = node.InnerText,
				                  		Code = node.Attributes["code"].InnerText,
				                  		ISO = int.Parse(node.Attributes["iso"].InnerText)
				                  	};
				container.AddToCountry(country);
			}


			try
			{
				container.AddToUser(user);
				container.SaveChanges();
				Console.WriteLine("Операция завершена. Нажмите любую клавишу....");
				Console.ReadLine();
			}
			catch (Exception e)
			{
				
				Console.WriteLine("Произошла ошибка: " + e.Message);
				Console.WriteLine("Нажмите любую клавишу....");
				Console.ReadLine();
			}

		}
	}
}
